{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "73650815-69d5-449d-b98a-d0295a8bffa7",
   "metadata": {},
   "outputs": [],
   "source": [
    "import sympy as sym\n",
    "import numpy as np\n",
    "import scipy as sp\n",
    "\n",
    "from pygears.transformation import symbolic_transformation, numeric_transformation\n",
    "\n",
    "t, x, m, xw = sym.symbols([\"t\", \"x\", \"m\", \"xw\"])\n",
    "s, alpha, n_t, y, phi = sym.symbols([\"s\", \"alpha\", \"n_t\", \"y\", \"phi\"])\n",
    "r = sym.Function(\"r\")(x, y)\n",
    "z = sym.Function(\"z\")(x, y, t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "31178c62-1fe2-4c36-b68d-2d91b7aaa0c9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\sqrt{\\left(x - xw\\right)^{2} + z^{2}{\\left(x,y,t \\right)}}$"
      ],
      "text/plain": [
       "sqrt((x - xw)**2 + z(x, y, t)**2)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dp = sym.sqrt( (x - xw)**2 + z**2)\n",
    "dp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d3facc03-df09-4f97-b96e-2d5041e5db12",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x - xw + z{\\left(x,y,t \\right)} \\frac{\\partial}{\\partial x} z{\\left(x,y,t \\right)}}{\\sqrt{\\left(x - xw\\right)^{2} + z^{2}{\\left(x,y,t \\right)}}}$"
      ],
      "text/plain": [
       "(x - xw + z(x, y, t)*Derivative(z(x, y, t), x))/sqrt((x - xw)**2 + z(x, y, t)**2)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sym.simplify(sym.diff(dp, x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ba6e9262-335b-42c9-b039-2b51f81cf491",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle t + \\left(- xw + r{\\left(x,y \\right)}\\right) \\tan{\\left(\\alpha \\right)}$"
      ],
      "text/plain": [
       "t + (-xw + r(x, y))*tan(alpha)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "z = (r - xw) * sym.tan(alpha) + t\n",
    "z"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "77172973-0811-4e04-916e-4ba58be59bbd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\tan{\\left(\\alpha \\right)} \\frac{\\partial}{\\partial x} r{\\left(x,y \\right)}$"
      ],
      "text/plain": [
       "tan(alpha)*Derivative(r(x, y), x)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sym.simplify(sym.diff(z, x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "23af144a-a99d-44e9-8186-303a0c316df9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\sqrt{x^{2} + y^{2}}$"
      ],
      "text/plain": [
       "sqrt(x**2 + y**2)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r = sym.sqrt(x**2 + y**2)\n",
    "r"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "bab28ada-83c2-466e-a53b-dce328080779",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x}{\\sqrt{x^{2} + y^{2}}}$"
      ],
      "text/plain": [
       "x/sqrt(x**2 + y**2)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sym.diff(r, x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "a6da9876-a1b5-47c0-80ee-cffb78e0394d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "t_start_1: -3.111447653720825\n",
      "t_start_0: 3.111447653720825\n",
      "t0: 3.111447653720825, min: 5.7674497619577754e-33\n",
      "t1: -3.111447653720825, min: 5.7674497619577754e-33\n",
      "t0: -3.111447653720825, min: -7.594372760115068e-17\n",
      "t1: 3.111447653720825, min: 7.594372760115068e-17\n"
     ]
    },
    {
     "data": {
      "image/png": "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9FySbjhHdjabvel5szdt2qRNmzbl7z/wwAPq6urSH//xH89bmrjdbrnd7qUdGAAAwIKy2ay+d2FQ/++/z+vigPGbqg2lxfpfj2zUm3Y3yG5n3xIAAAAAAG5lWUuTyspKORyO/HKfaYODg6qpqVnw69x///364he/uNTjASvCzp07zR4BABaF3FqZjneN64lvnNPB9lFJUrDYqV99eL3e/kAL+5ZgVSOzAFgNuQXAasgtFBr7cr64y+XS3r179eSTT845/uSTT845XdftvPjii6qrq1vq8YAVYfqcfABgFeTWytIxPKlf+YdjetMnn9XB9lG5iuz6pZev1Q/+98N618vWUphg1SOzAFgNuQXAasgtFJplPz3X+973Pr397W/Xvn379MADD+iv/uqv1NnZqccff1yS9KEPfUg9PT36+7//e0nSJz7xCbW2tmrbtm1KJBL64he/qC996Uv60pe+tNyjAqaYmJgwewQAWBRya2UYjsT1Z9+5pH882KlUJiubTXrLfY163yMb1VBabPZ4wIpBZgGwGnILgNWQWyg0y16a/MRP/IRGRkb0kY98RH19fdq+fbu+8Y1vqKWlRZLU19enzs7O/PMTiYR+/dd/XT09PSouLta2bdv09a9/Xa997WuXe1TAFMXF/GALgLWQW+aajKf0N8+0669+cEWTibQk6RWbqvSB12zWlrpbb2YHrEZkFgCrIbcAWA25hUJjy2azWbOHWErhcFjBYFChUEiBAD84wMqXTCbldDrNHgMAFozcMkcyndG/HO7SJ566pOFIXJK0szGoDz66WS9ZV2nydMDKRWYBsBpyC4DVkFuwgsX0Bsu6pwmA2zt27JjZIwDAopBb91Y6k9VXXuzWIx//gX7zP05rOBJXc7lXf/5T9+k/3v0ghQlwG2QWAKshtwBYDbmFQrPsp+cCAADA4qUzWX3tZK/+7DuXdGVoUpJU7nPp1165Xj/d1iJXEb/7AgAAAADAUqM0AUzW0NBg9ggAsCjk1vLKZLL6xuk+/elTl3RpMCJJChY79YsvW6ufe0mr/G7evgGLQWYBsBpyC4DVkFsoNPyrGzCZy+UyewQAWBRya3lkMll960y/PvHUJV0YmJAkBTxFetdL1+rnH2xViYdzBAN3gswCYDXkFgCrIbdQaChNAJO1t7erurra7DEAYMHIraWVzWb17bMD+viTF3W+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R+fPn1c0GpXf79e6det04sQJScqfjq2zs1OStGvXLl25ckWRSERer1ebN2/WsWPH8l/voqIidXR0SJJ27Nihzs5OhUIheTwebd++XUeOHJEk1dXVyev16sqVK5Kkbdu2qbe3V2NjY3I6ndqzZ48OHjyY/14KBAK6dOlS/us9ODiokZERORwO7du3T4cPH1Ymk1FVVZXKy8t14cIFSdLGjRs1NjamoaEh2Ww2HThwQEePHlUqlVJ5eblqamryX+/169crEonkv88PHDig48ePK5FIqLS0VI2NjTp9+rQko/jr6upSb2+vJGnv3r06c+aMYrGYAoGAWltb53zPptPp/Nf7vvvu08WLFzU5OSm/36/169fr+PHjkqSmpibZ7fY537Pt7e2amJhQcXGxtmzZkv96NzQ0yOVyqb29Pf/17urq0vj4uNxut3bu3KnDhw/nv2d9Pl/+671161b19/drdHT0hq93dXW1gsFg/uu9efNmDQ8Pa3h4OP89O/31rqysVGVlpc6fP5//ng2FQhocHLzhe7a8vFy1tbU6e/Zs/nt2cnIy//Xev3+/Tp48qXg8rtLSUjU1NeW/Z9esWaNEIqGenp789+xSZsSlqx0ajqblq2nRics96hyd1GhMCmec6hia0ETi1pvXFdmlxjKvSouSqvE5tL62VGurA8pMDKrG69DuHVtnZURKe3es16FDh3Sqi4wo1IxYu3atYrHYisqIVCqlCxcukBG8jyAjyAhJK/99xNjYmCSRESIjyAgywirvI8LhsBKJBBkhMmJZMqLSr/Yj35En2qM6V1QavaLs8GV5or0qSk7oVjKugKKeGsW99Spds0v9iWKFHRVyVK5Ty46X6PhJ47/NnIyYTGlnhU/t586REQX8PmJyclJjY2NkRCFkRAG/j1i/fr0WypbNZm/9E7y70Nvbq4aGBj333HN64IEH8sd///d/X1/4whfyYTTbxo0b9Y53vEMf+tCH8seeffZZPfTQQ+rr61Ntbe2c58+30qSpqUmhUEiBQGAZ/lTA0orH43K73WaPgQWKJdPqGZ9S7/iUesam1D02ZawcGZtS12hUgxPx275GqdepxrJitZT71FTuVUuFVy3lXjVXeFUXLJaDPUawwpFbAKyEzAJgNeQW7lo8Io1cNi6jV3OrR64Y11Ojt/7YknqpfK1U3iqVrZHK1xjXZa2St/xe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",
      "text/plain": [
       "<Figure size 2000x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import scipy as sp\n",
    "import numpy as np\n",
    "from freecad import part\n",
    "from freecad import app\n",
    "from pygears.transformation import numeric_transformation\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "debug = False\n",
    "def compute_involute(module=1, teeth=15, height=5, worm_pitch_diameter=10, num_threads=1, alpha=np.deg2rad(20)):\n",
    "    y = 0.\n",
    "    xw = worm_pitch_diameter / 2\n",
    "    \n",
    "    def r(x, y):\n",
    "        return (x**2 + y**2)**(0.5)\n",
    "\n",
    "    def dr_dx(x, y):\n",
    "        return x / r(x, y)\n",
    "    \n",
    "    def z(x, y, t):\n",
    "        r_xy = r(x, y)\n",
    "        return (r_xy - xw) * np.tan(alpha) + t\n",
    "\n",
    "    def dz_dx(x, y, t):\n",
    "        r_xy = r(x, y)\n",
    "        return np.tan(alpha) * dr_dx(x,y)\n",
    "\n",
    "    def distance_pw(x, y, t):\n",
    "        return np.sqrt((xw - x) ** 2 + z(x, y, t) ** 2)\n",
    "\n",
    "    def d_distance_pw_dx(x, y, t):\n",
    "        return (x - xw + z(x,y,t) * dz_dx(x,y,t)) / np.sqrt((x-xw) ** 2 + z(x,y,t) ** 2)\n",
    "\n",
    "    def min_root(y, t):\n",
    "        r0 = xw +  module # * (1 + clearence)\n",
    "        return d_distance_pw_dx(r0, y, t)\n",
    "        \n",
    "    def min_head(y, t):\n",
    "        r1 = xw -  module # * (1 + clearence)\n",
    "        return d_distance_pw_dx(r1, y, t)\n",
    "        \n",
    "    xyz = []        \n",
    "    r0 = xw -  module # * (1 + clearence)\n",
    "    r1 = xw +  module # * (1 + clearence)\n",
    "    t_start_0 = (r0 - xw) * (np.tan(alpha) + 1. / np.tan(alpha))\n",
    "    t_start_1 = (r1 - xw) * (np.tan(alpha) + 1. / np.tan(alpha))\n",
    "    print(f\"t_start_1: {t_start_0}\")\n",
    "    print(f\"t_start_0: {t_start_1}\")\n",
    "\n",
    "    t_i = np.linspace(t_start_0 * 1.5, t_start_1 * 1.5, 100)\n",
    "    plt.figure(figsize=(20,5))\n",
    "    plt.plot(t_i, [min_root(y, t) for t in t_i])\n",
    "    plt.plot(t_i, [min_head(y, t) for t in t_i])\n",
    "    plt.grid(which='both', linestyle='--', linewidth=0.5)  # Gitterlinien für Major und Minor\n",
    "    plt.grid(which='minor', linestyle=':', linewidth=0.3)\n",
    "    t0 = sp.optimize.root(lambda t: min_head(y, t)**2, t_start_1).x[0]\n",
    "    t1 = sp.optimize.root(lambda t: min_root(y, t)**2, t_start_0).x[0]\n",
    "    print(f\"t0: {t0}, min: {min_head(y, t0)**2}\")\n",
    "    print(f\"t1: {t1}, min: {min_root(y, t1)**2}\")        \n",
    "    print(f\"t0: {t_start_0}, min: {min_root(y, t_start_0)}\")\n",
    "    print(f\"t1: {t_start_1}, min: {min_head(y, t_start_1)}\")\n",
    "    for t in np.linspace(t0, t1, 20):\n",
    "        x_t = sp.optimize.minimize(lambda x: distance_pw(x, y, t), xw).x[0]\n",
    "        z_t = z(x_t, y, t)\n",
    "        point = App.Vector(x_t, y, z_t)\n",
    "        part.show(part.Point(point).toShape())\n",
    "\n",
    "compute_involute()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "540b88e6-173f-4a04-9186-51ba434ae134",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
